package com.ruoyi.develop.lvRuku.service;

import java.util.List;

import com.ruoyi.develop.lvRuku.domain.LvRuku;
import com.ruoyi.develop.produceRecord.domain.ProduceRecord;
import com.ruoyi.develop.produceRecordDetail.domain.ProduceRecordDetail;

/**
 * 入库单Service接口
 * @author qh
 * @date 2024-09-12
 */
public interface ILvRukuService {
    /**
     * 查询入库单
     * @param id 入库单主键
     * @return 入库单
     */
    public LvRuku selectById(String id);

    /**
     * 查询入库单列表
     * @param entity 入库单
     * @return 入库单集合
     */
    public List<LvRuku> selectList(LvRuku entity);

    public String selectMaxCode(String today);
    /**
     * 新增入库单
     * @param entity 入库单
     * @return 结果
     */
    public int insert(LvRuku entity);
    public int insertWithDetail(LvRuku entity);

    /**
     * 修改入库单
     * @param entity 入库单
     * @return 结果
     */
    public int update(LvRuku entity);
    public int updateWithDetail(LvRuku entity);

    /**
     * 批量删除入库单
     * @param ids 需要删除的入库单主键集合
     * @return 结果
     */
    public int deleteByIds(String[] ids);

    /**
     * 删除入库单信息
     * @param id 入库单主键
     * @return 结果
     */
    public int deleteById(String id);

    void rukuByProduce(ProduceRecord produceRecord, List<ProduceRecordDetail> list);
    void chukuByProduce(ProduceRecord produceRecord, List<ProduceRecordDetail> list);

    void chukuByProduceDetail(ProduceRecordDetail detail);

    void rukuByProduceDetail(ProduceRecordDetail detail,ProduceRecord produceRecord);

    void oneKeyBuyOut(LvRuku lvRuku);
}
